package edu.utn.tacs.grupouno.ui.server;

import java.util.ArrayList;
import java.util.List;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;

import edu.utn.tacs.grupouno.negocio.Paciente;
import edu.utn.tacs.grupouno.rest.api.PacientesService;
import edu.utn.tacs.grupouno.ui.client.PacientesUIService;
import edu.utn.tacs.grupouno.ui.client.dto.PacienteDTO;
import edu.utn.tacs.grupouno.ui.server.factories.PacienteDTOFactory;

public class PacientesUIServiceImpl extends RemoteServiceServlet implements PacientesUIService {

	private static final long serialVersionUID = 3109003439963362448L;
	private ClassPathXmlApplicationContext context;
	
	@Override
	public List<PacienteDTO> getPacientes() {
		List<PacienteDTO> retval = new ArrayList<PacienteDTO>();
		if(context == null) {
			context = new ClassPathXmlApplicationContext("beans-ui.xml");
		}
		PacientesService proxy = context.getBean("pacientesService", PacientesService.class);
		List<Paciente> pacientes = proxy.getPacientes();
		PacienteDTOFactory factory = new PacienteDTOFactory();
		
		for(Paciente paciente : pacientes) {
			retval.add(factory.create(paciente));
		}
		
		return retval;
	}
}
